/*
*编写程序从标准输入读入一系列string对象，寻找连续重复出现的单词。程序应该找出满足一下条件的单词的输入位置：
*该单词后面紧跟着再次出现自己本身。
*跟踪重复次数最多的单词及其重复次数。
*输出重复次数的最大值，若没有单词重复，则输出说明信息
*/
#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main()
{	
	string strVal;
	string befVal,curVal;
	string sameVal;
	vector<string> svec;
	int count = 0,max = 1;
	cout << "请输入单词：";
	while(cin >> strVal)
	{
		if(strVal == "end")
		{
			break;
		}
		svec.push_back(strVal);
	}

	//循环判断重复
	for(int i = 0;i != svec.size();i++)
	{
		//第一次循环前一个单词和当前单词为第一个单词
		if(i == 0)
		{
			befVal = curVal = svec[0];
		}
		else
		{
			befVal = svec[i - 1];
			curVal = svec[i];
		}

		//如果当前单词和前一个单词一样则重复次数加1
		if(curVal == befVal)
		{
			count += 1;
		}
		else
		{
			//如果重复次数大于最大重复次数则将最大重复次数修改为当前重复次数
			if(count > max)
			{
				sameVal = befVal;
				max = count;
			}
			count = 1;
		}
		befVal = curVal;
	}

	//判断最后一个单词是否与倒数第二个单词重复
	if(count > max)
	{
		sameVal = befVal;
		max = count;
	}

	//输出结果信息
	if(max == 1)
	{
		cout << "没有重复的单词" << endl;
	}
	else
	{
		cout << sameVal << "重复" << max << "次" << endl;
	}

	system("pause");
	return 0;
}